home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Freelog 29
/
Freelog029.iso
/
BestOf
/
Abuse
/
Abuse Setup.exe
/
data1.cab
/
Program_Executables
/
What's New.txt
< prev
Wrap
Text File
|
2001-02-12
|
13KB
|
327 lines
February 04, 2001
-----------------
- Finally got alt-tabbing to behave nicely. Still minor
issues with the main menu, but it's at least much
better than it was.
January 28, 2001
----------------
- There's now only one place where a window_manager
is instantiated. There are no functions which
take a window_manager parameter anymore.
- Well, in the process of adding changes necessary to
handle recovery from alt-tabbing away from Abuse
(which is why I was updating jwindow::redraw()),
the entire windowing system is getting an overhaul.
It's gonna be sweet when I'm done, though.
- jwindow::redraw() has been changed to a virtual
function requiring no parameters. This'll make
it much easier to implement special specific-
purpose windows.
- renamed wm[] array in dev.cpp to WinMenus so that it
doesn't have a name collision with the satic wm
singleton.
- Starting work on singleton code; will get rid of all
references to an arbitrary window_manager* because
there's only going to be one, and it's not ever
going to change.
- Got rid of X-ish "control is only active when mouse is
over it" Now you've gotta click on a control to make
it take focus, and you can hit tab to move between
controls even when one isn't currently selected.
- Fixed right/down arrow display in selection boxes...
Finally. That bug had been eluding me forever.
(Accidentally Lock()ed again at the end of drawing
instead of UnLock()ing ... Oops)
January 27, 2001
----------------
- I think I've figured out why the automap is crashing the
engine sometimes. When I'm done with other stuff, I'll
take a look at fixing it.
- Got fRaBs' uninstall working. I guess "company name" is
required before the uninstaller can initialize. Dumb
limitation, if you ask me...
- Moving username.lsp, gamename.lsp, and some other LISP
files out of /addon/deathmat into /config. Adding
more saved configuration stuff as well.
- Added net_configuration::save() function
- Modifying deathmatch startup code to look for -a switch,
allowing addons to redefine deathmatch settings.
- Added net_configuration::load() function
- fixed info_field->find() function
- fixed button_box->press_button() function
- Also found the foretile corruption display in the editor.
Will take a look at it soon -- for now just close the
window and re-open it and it'll be okay.
File notes:
changed:
/
abuse.lsp
/lisp
people.lsp
startup.lsp
/addon/deathmat
deathmat.lsp
dstartup.lsp
/addon/fRaBs
!new-> netstart.lsp
/addon/fRaBs/lisp
startup.lsp
/addon/fRaBs/deathmat
deathmat.lsp
dstartup.lsp
January 24, 2001
----------------
- Engine now deletes lcachexx.tmp on exit, and doesn't
ever create end.mem in the release build.
- Working on Shareware/Retail/fRaBs InstallShield packages.
Can't get fRaBs' uninstall to start correctly...
January 23, 2001
----------------
- Finally fixed the sound so that Abuse doesn't crash when
it can't find a sound card...
- Fixed game_getter() so that lbreak() works.
- Removed *all* exit() calls and replaced with WriteErr().
Abuse should *never* shut down without giving a reason
anymore. If it does, I've got an error somewhere that
isn't being taken into account.
- Fixed fRaBs so that it'll work within /addon/fRaBs with
the -a switch. Now I just need to tell Justin how he
needs to do things from now on... ;)
January 19, 2001
----------------
- I actually added this a while ago, but for anyone who's
interested, the GUID I'm using to create DirectPlay
sessions is:
{7FAABB28-D1AB-4b3b-957C-58A124E03542}
Not that anyone'll probably need this, but who knows?
- Added -module switch for specifying "add-on modules,"
which will be a more complete version of the -a switch.
- Tweaked with the re-worked DPlay stuff and it's much
better now. Still works, and is far prettier.
January 18, 2001
----------------
- The entire Abuse engine now runs inside its own thread,
allowing WinMain() to do event processing --
Now alt-tab should *always* work, even in game loops
where it previously wasn't polling for Windows events.
- Re-worked some DirectPlay stuff to allow it to start
a new network game after it's done with another...
Not the best solution, but it works.
- DirectInput routines now run inside their own thread,
as part of an effort to make the entire engine multi-
threaded. Currently working on moving Get/Translate/
DispatchMessage() out of the event handling code and
back into WinMain() where they belong.
- also had an idea to improve mouse wheel weapon switching
that works great except for one tiny problem. I
doubt if anyone'll encounter this problem, tho'. If
you find it, and it's a major problem, let me know
and I'll see if I can get to the bottom of it.
- worked on the lighting altorithm. Got a 100% speedup
in one of the inner loops, according to the profiler.
Lighting now takes about 10% less processor time when
using hw acceleration.
Could still be sped up, though. The 32-bit reads
are faster (and fewer), but they're still not
guaranteed to be on a DWORD boundary, so there's
still a potential performance hit. I also need
to re-work the lighting table's functionality to
get rid of another good portion of the 8-bit
operations.
January 17, 2001
----------------
- fixed blinking player location dot not displaying in
automap.
- finally completely fixed the far right/bottom lines not
being drawn problem. Really bizarre solution -- I'm
not entirely convinced that the problem doesn't lie
elsewhere -- but it's fixed.
- weaning functions from image::width() to use
image::Pitch instead... DirectDraw aligns all scan
lines on DWORD boundaries, so width() doesn't
necessarily equal bytes/scan line.
- Right now I'm having a problem with system vs. local
video memory... If I create any of my surfaces in
system memory, the hardware acceleration takes a
serious hit on non-AGP systems. If I create surfaces
(one in particular representing the offscreen buffer)
in local video memory, any software rendering routines
(especially lighting) take serious performance hits.
Hardware acceleration blazes through all of Abuse's
drawing routines. I can get upwards of 120 fps on my
computers with delays turned off ... But more than 50%
of all processing time is spent in the lighting routine.
When using system memory, lighting takes about 15% of
the processing time...
Methinks I'll have to do some work on the lighting
algorithm to make it more 32-bit friendly...
January 10, 2001
----------------
- fixed bug that made Abuse think that keys were being
pressed when they were released, and vice-versa. It was
only by an incredible coincidence that the DirectInput
code was working at all before this. Now everything
(should) work.
January 08, 2001
----------------
Code Notes:
- changing file_manager::remote_file::unbuffered_read() so
that it won't overrun the read buffer anymore -- ever.
- trying to find a bug that's preventing files larger than
8k from transferring over the network correctly
(only a problem in the debug executable ... for now.
has potential to make things really bad later on.)
January 07, 2001
----------------
- Added automap, though it's crashed a test machine twice,
so I removed it again.
- Built InstallShield package for shareware install
- Added mouse wheel support for changing weapons (not
perfect yet)
- Other stuff, though I've forgotten what.
January 06, 2001
----------------
- DirectInput for mouse works. Mouse sensitivity can be
changed, but needs a user interface still.
- Modified do_title() routine to no longer be hard-coded
for the original "intro" string ... Any string should
now be shown in its entirety. Mouse button click will
also exit the title screen.
- Started looking at LISP processing code to see about
adding functions that'll allow LISP scripts to do
intro/title-type stuff. (Draw pictures, show
scrolling text, etc.)
- Fixed editor map mode ... again. Forgot that I'd lost that
fix when I had a mini HD crash.
- Framerate is no longer "game tick" based. The game tick
runs at a fixed rate of 15Hz, and all game objects run
at this rate. This made the mouse move kinda choppy,
(as Bill pointed out) even if your computer is capable
of framerates much higher. Screen is now updated as
fast as possible, and game ticks still happen at 15Hz.
Interesting note, though: all I've got to do to increase
or decrease the speed of the game is to change a
floating-point value to something other than 15 ...
Throw a user interface in for it, and "Turbo-mode Abuse,
anyone?"
It's amazing how much I've been able to tinker with now that the
DirectPlay code is more or less done... It's also amazing how
much of this engine's capabilities went unused by the original
Abuse...
January 05, 2001
----------------
- Now using DirectInput for keyboard input. Faster, better.
Doesn't rely on Windows messaging. No more accidentally
hitting the Windows key when reaching for Ctrl, Josh...
- Working on DirectInput for mouse input. Will be faster,
better. Will support changing sensitivity and more
buttons. (5-button/wheel mouses will be more useful
in Abuse, eventually...)
January 04, 2001
----------------
- Sound should never crash the Sound Server anymore (thus
crashing Abuse)
- Creating DirectPlay sessions with a much higher player limit
to allow for more simultaneous "virtual connections" that
I make with each client. Fixes "Can't create player"
errors.
January 03, 2001
----------------
- My name's in the startup console view now... :)
- Adding console view; throwing out text stat_man entirely
- preload.lsp now required. This file contains startup
configuration for game fonts, palette, and window
stuff.
Code Notes:
- event_handler (eh) is now created only once immediately
after the video mode is initialized. Same with the
status_manager (stat_man). They're both destroyed
when the program exits.
- fixed up WriteErr macro
- moving exit(x)'s into WriteErr, which shuts down DirectDraw
and shows a message box describing the error.
- changed sprite::change_visual() to copy the image and then
unlink it. jwindow::jwindow unlinks its screen. Did this
to keep them from getting destroyed when lisp is reloaded.
- modified NF_set_file_server(net_address *addr) to use dprintf
for console reporting.
- moving most printf's and fprintf's into dprintf to give the
Windows port a form of output for users to see as progress
indication and/or error messages.
January 01, 2001
----------------
- Networking supports more than 2 players
December 26, 2000
-----------------
- Networking is much better now.
December 24, 2000
-----------------
- Fixed extra line of garbage being drawn on display (really!)
- Networking works
December 9, 2000
----------------
- Fixed map display problem
- Added experimental logic to the sound server ... It now
tries to keep the number of playing sounds managed, so
hopefully it'll sound better.
- I've set the sound to play at 44.1 khz, 16-bit which helps
a lot even without sound management. Eventually this'll
be user-configurable, but for now it's hard-coded.
- And yet another improvement in the sound department -- it's
now in *stereo*! If something's on your left, you'll hear
it from the left speaker, and vice versa. This took me
*exactly* one line of code to implement. The framework
already had support for panning, it just wasn't used for
some reason.
- Command line switches work now. Try -size (and give it a
usable resolution, because it does no checking and will
just die if it can't switch modes)... All other switches
should work, too. Let me know if any don't.
- Fixed minor graphical glitch that made garbage show on the
far-right column and bottom scan line of the monitor.
(I think.)
- Threw out all of my old DirectPlay code and am starting
over. I've got a better idea of what it needs to do now,
so I should be able to get a slightly more elegant
solution in place than the one I was working on before.
(also began reading up on Winsock 2 APIs, for possibility
of supporting non-Windows players)
Known Bugs:
- Once, when I was playing around with the editor, the
foreground tile window filled itself with garbage. I
closed it and re-opened it and it was fine. I couldn't
reproduce it again.
- Also, once, the debugger found some bad memory allocations
in weird places, but it didn't affect the game, and I
can't get it to do it again.